<?
// Eliminare le funzioni relative al mysql

class Mod_auth extends CI_Model {
	
	public function __construct(){
		parent::__construct();
	}
	
	// Questa è la parte che gestisce il controllo sullo stato del login
	public function stato_login(){
		return $this->session->userdata('loggato');
	}
	
	public function id_loggato(){
		return $this->session->userdata('id_loggato');
	
	}
	
	public function logout(){
		$this->session->sess_destroy();
	}

	public function id_bacheca(){
		return $this->session->userdata('id_bacheca');
	}
	
	
	
	// mi viene da pensare che il menu dovrebbe essere prodotto proprio da questo file, no ?
	// Questa è la parte che gestisce la restituzione dell'array delle sessioni da passare al menu
	public function array_sessioni(){
		
		$dati_sessione = array(
		    'nome'  		    => $this->session->userdata('nome') ,
		    'cognome'         => $this->session->userdata('cognome') ,
		    'email'  		    => $this->session->userdata('email') ,
		    'password'        => $this->session->userdata('password') ,
		    'stato'     	    => $this->session->userdata('stato') ,
		    'loggato' 		    => $this->session->userdata('loggato') , 
		    'id_loggato'      => $this->session->userdata('id_loggato') , 
		    'amministratore'  => $this->session->userdata('amministratore') , 
		    'superadmin'      => $this->session->userdata('superadmin') , 
		    'subadmin'        => $this->session->userdata('subadmin') ,
		    'id_bacheca'      => $this->session->userdata('id_bacheca')
      );
		return $dati_sessione ; 
	}
	
	// questa serve a recuperare l'id utente di una bacheca che si sta visitando
	public function id_utente_amico($id_bacheca){
		$query = "select id_utente from pagine where id='$id_bacheca' ";
		$risu  = mysql_query($query);
		list($id_utente) = mysql_fetch_array($risu);
		return $id_utente ;
	}
	
	// Questa è la funzione che gestisce lo stato delle notifiche
	public function stato_notifiche($id_utente , $id_bacheca){
		$query = "SELECT * FROM pagine WHERE id='$id_bacheca' AND id_utente='$id_utente' ";
		$risu  = mysql_query($query);
		$arr = mysql_fetch_array($risu);
		return $arr ;
	}
	
	// Questa serve ada ggiornare le notifiche
	public function aggiorna_notifiche($notifiche_amicizia, $notifiche_bacheca, $notifiche_messaggio, $notifiche_piaci, $notifiche_uscita){
		
		$id_utente = $this->session->userdata('id_loggato');
		$id_bacheca = $this->session->userdata('id_bacheca');
		
		$query = "UPDATE pagine SET 
			notifiche_bacheca='$notifiche_bacheca' , 
			notifiche_messaggio='$notifiche_messaggio' ,  	
			notifiche_amicizia='$notifiche_amicizia' ,  	
			notifiche_piaci='$notifiche_piaci' ,  	
			notifiche_uscita='$notifiche_uscita'  
		WHERE id='$id_bacheca' AND id_utente='$id_utente' ";
		$risu = mysql_query($query);
		if(mysql_affected_rows()=="1") echo "1";
		else echo "Errore al momento dell amodifica";
	}
	
	public function modifica_nome_pagina($id_bacheca , $id_utente , $nome){
		$nome = mysql_real_escape_string($nome);
		if(strlen($nome)>30)$nome = substr($nome , 0 , 30);
		$query = "update pagine set nome='$nome' where id='$id_bacheca' and id_utente='$id_utente' ";
	
		$risu  = mysql_query($query);
		return mysql_affected_rows();
	}
	
	public function nome_pagina($id_utente , $id_bacheca){
		$query = "select nome from pagine where id='$id_bacheca' and id_utente='$id_utente' ";
		$risu  = mysql_query($query);
		list($nome_utente) = mysql_fetch_array($risu);
		return $nome_utente;
	}
	
	public function nome_pagina_log(){
		$id_utente = $this->session->userdata('id_loggato');
		$id_bacheca = $this->session->userdata('id_bacheca');
		$query = "select nome from pagine where id='$id_bacheca' and id_utente='$id_utente' ";
		$risu  = mysql_query($query);
		list($nome_utente) = mysql_fetch_array($risu);
		return $nome_utente;
	}
	
	// Questa è la parte che  gestisce il ripristino del login dell'amministratore
	public function ripristina_login_amministratore(){
		$query = "select * from utenti_registrati where id='{$this->session->userdata('id_adm')}' ";
			$risu  = mysql_query($query);
			$num   = mysql_num_rows($risu);
			
			$arr = mysql_fetch_array($risu);
			
			$dati_sessione = array(
	          'nome'  			=> $arr['nome'] , 
	          'cognome'        => $arr['cognome'] , 
	          'email'  			=> $arr['email'] , 
	          'password'       => $arr['password'] , 
	          'stato'     		=> $arr['attivo'] , 
	          'id_loggato'     => $arr['id'] ,
	          'id_utente'      => $arr['id'] ,
	          'id_bacheca'     => $this->session->userdata('id_bacheca_adm') ,  
	          'loggato' 			=> 1 
	      );
			$this->session->set_userdata($dati_sessione);
	}
	
	public function effettua_sub_login($id_bacheca){
		$id_bacheca = (int) mysql_real_escape_string($id_bacheca);
		$query_pag = "select id_utente from pagine where id='{$id_bacheca}' and tipo=1";
		$risu_pag    = mysql_query($query_pag);
		list($id_utente) = mysql_fetch_array($risu_pag);
		if($id_utente){
			$query = "select * from utenti_registrati where id='$id_utente' ";
			$risu  = mysql_query($query);
			$num   = mysql_num_rows($risu);
			if($num){
				$arr = mysql_fetch_array($risu);
				
				$dati_sessione = array(
		          'nome'  			=> $arr['nome'] , 
		          'cognome'        => $arr['cognome'] , 
		          'email'  			=> $arr['email'] , 
		          'password'       => $arr['password'] , 
		          'stato'     		=> $arr['attivo'] , 
		          'id_loggato'     => $arr['id'] ,
		          'id_utente'      => $arr['id'] ,
		          'id_bacheca'     => $id_bacheca ,  
		          'loggato' 			=> 1 
		       );
				$this->session->set_userdata($dati_sessione);
				return "1";
			}
			else return "0";
		}
	}
	
	
	public function effettua_login($email , $password){
		$query = "select * from utenti_registrati where email='$email' and password='$password' ";
		$risu  = mysql_query($query);
		$num   = mysql_num_rows($risu);
		if($num){
			$arr = mysql_fetch_array($risu);
			$stato_registrazione = $arr['attivo'];
			$id_utente_log = $arr['id'];
			if($stato_registrazione=="1"){
				
				/*
				$nome_new  = $arr['nome']." ".$arr['cognome']; 
			   // Check per la bacheca partner
				$query_check = "select * from pagine where id_utente='$id_utente_log' and tipo='2' ";
				$risu_check    = mysql_query($query_check);
				$num_check   = mysql_num_rows($risu_check);
				if(!$num_check){
					$query_ins = "insert into pagine (id_utente , visibile , nome , tipo  ) 
					values 
					('$id_utente_log' , '0' , '$nome_new' , '2' )";
					$risu_ins   = mysql_query($query_ins);
					$id_bacheca_partner = mysql_insert_id();
					$stato_partner = "0";
				}
				else {
					$arr_check =  mysql_fetch_array($risu_check);
					$id_bacheca_partner = $arr_check['id'];
					$stato_partner = $arr_check['visibile'];
				}
				*/
				
				// ora devo prendere l'id_bacheca
				$query_pag = "select * from pagine where id_utente='{$arr['id']}' and tipo=1";
				$risu_pag    = mysql_query($query_pag);
				$arr_pag     = mysql_fetch_array($risu_pag);
				$id_pagina   = $arr_pag['id'];
				$dati_sessione = array(
		          'nome'  			=> $arr['nome'] , 
		          'cognome'        => $arr['cognome'] , 
		          'email'  			=> $arr['email'] , 
		          'password'       => $arr['password'] , 
		          'stato'     		=> $arr['attivo'] , 
		          'id_loggato'     => $arr['id'] ,
		          'id_utente'      => $arr['id'] ,
		          'id_adm'         => $arr['id'] ,
		          'id_bacheca_adm' => $id_pagina ,  
		          'amministratore' => $arr['amministratore'] ,
		          'superadmin'     => $arr['superadmin'] ,
		          'subadmin'       => $arr['subadmin'] ,
		          'id_bacheca'     => $id_pagina ,  
		          'loggato' 			=> 1 
		         );
				$this->session->set_userdata($dati_sessione);
			
				// **** a questo punto aggiornare il campo ultimo accesso 
				$ultimo_accesso = date( 'Y-m-d H:i:s'); 
				$query_up = "update utenti_registrati set data_ultimo_accesso='$ultimo_accesso' where id='{$arr['id']}' ";
				$risu_up    = mysql_query($query_up);
			
				return 1 ; 
			}
			else return "La sua registrazione non è ancora stata attivata. <br/> Segua le istruzioni contenute nella sua mail di attivazione.";
		}
		else return "La Email o la Password inserite non sono corrette."	;
	}
	
	
}
	
